Method for fast wavelet transform of a signal

ABSTRACT

Method for determining at least one wavelet coefficient W s (τ) of a wavelet transform of a signal in which the mother wavelet of the transform has a support subdivided into J≧1 intervals bound by (J+1) extremity points, and is defined by a polynomial of a maximum level N≧1 on each interval. The method includes calculating all or some of the primitives of the signal of order k between 2 and N+1, at least at (J+1) points corresponding to extremity points of the intervals of the wavelet support dilated by a factor of s and translated by a time τ; calculating the convolution of said or each primitive sampled in this way with a respective succession of (J+1) coefficients C i   k (s), dependent upon said wavelet; and determining the wavelet coefficient by calculating a linear combination of convolutions. Steps a) to c) are implemented by a processor configured or programmed in an appropriate manner.

FIELD

The invention relates to a method for fast wavelet transform of a signal. A method according to the invention is implemented using a processor, preferably in real time. The invention also relates to a processor configured or programmed for the implementation of such a method.

The method is particularly appropriate to the implementation of a continuous wavelet transform, but may equally be applied to the case of a discrete transform.

The signal to be transformed is generally a digital signal; it may in particular be a signal obtained by sampling and quantifying an analog signal, representative of a physical quantity. The method of the invention may be applied in particular to the processing of neuronal signals (neuro-electrical signals), especially in neuronal control or brain-computer interface systems.

BACKGROUND

Wavelet transform is an important tool in signal processing, used in particular to perform time-frequency analyses. In general terms, a wavelet transform is described by the convolution:

$\begin{matrix} {{W_{s}(\tau)} = {\frac{1}{\sqrt{s}}{\int_{- \infty}^{\infty}{{x(t)}{\psi^{*}\left( \frac{t - \tau}{s} \right)}\ {\mathbb{d}t}}}}} & (1) \end{matrix}$

-   -   where:         -   t is time;         -   x(t) is the signal to be transformed;         -   function ψεL²(             ) is the “mother wavelet”, also called the “generator             function”; it generally presents a compact support [−α, +α];         -   s>0 is called the “scale factor”;         -   τ is the time delay;         -   “*” indicates the conjugate complex; in fact, ψ can             generally be a function with complex values, but in the             following we shall consider, without losing generality, the             case where it is a real function;         -   W_(s)(τ) is a wavelet coefficient dependent on s and τ.

We talk about “Discrete Wavelet Transform” (DWT), when s=a^(m) and τ=nb, where m,n are positive integers. If s and τ can adopt any value—any positive value in the case of s—we talk about “Continuous Wavelet Transform” (CWT), even if signal x is discrete, which is generally the case, to allow it to be digitally processed.

DWTs are generally more suitable for processing neuronal signals, for example, because they allow said signals to be analyzed at the desired frequential resolution.

For more details on wavelet transform, one may refer to: Beatrice Pesquet-popescu and Jean-Christophe Pesquet “Ondelettes et applications” (“Wavelets and applications”), Techniques de l'Ingénieur, Chapter TE 5 215.

Fast algorithms have been developed for performing discrete wavelet transforms. In contrast, continuous wavelet transforms remain relatively onerous in terms of time and resources, which limits their use in real time applications and low energy consumption applications.

In a conventional manner, a CWT is implemented, in an approximate fashion, by replacing the integral of equation (1) by a discrete sum. The case of a signal x(t) sampled at discrete intervals t=−1, 0, 1, 2 . . . is considered (for the sake of simplicity, and without losing generality, the time scale is taken such that its discretization step equals 1), and x_(i)=x(t_(i)) is put down; the mother wavelet ψ is defined on a compact support [−α, +α]. The function:

${\psi_{s}(t)} = {\frac{1}{\sqrt{s}}{\psi\left( \frac{t}{s} \right)}}$ is defined, whose support is [−α_(s), +α_(s)] where α_(s)=α/s. Equation (1) then becomes:

${W_{s}(\tau)} = {{\int_{- \alpha_{s}}^{\alpha_{s}}{{x\left( {t + \tau} \right)}{\psi_{s}(t)}\ {\mathbb{d}t}}} = {\overset{\alpha_{s} - 1}{\sum\limits_{i = {- \alpha_{s}}}}{\int_{i}^{i + 1}{{x\left( {t + \tau} \right)}{\psi_{s}(t)}\ {\mathbb{d}t}}}}}$

To calculate this sum of integrals, we make the piecewise constant signal approximation: x(t)=x_(i) ∀tε[i, i+1[(other approximations are possible, for example, linear interpolation between t=i and t=i+1); furthermore, one limits oneself to integer values of τ(τ= . . . , −1, 0, 1, . . . ). One can therefore write:

$\begin{matrix} {{{W_{s}(\tau)} = {\overset{\alpha - 1}{\sum\limits_{i = {- \alpha}}}{A_{i}x_{i + \tau}}}}{{{with}\mspace{14mu} A_{i}} = {\int_{i}^{i + 1}{{\psi_{s}(t)}\ {{\mathbb{d}t}.}}}}} & (2) \end{matrix}$

By considering the coefficients A_(i) as known, which can be calculated once and for all, one sees that determining a single wavelet coefficient requires (2α−1) multiplications and (2α−2) sums. Now, α can adopt relatively large values, for example, to make a time-frequency analysis of a signal sampled at 1 kHz in frequency range 10 Hz-300 Hz with Meyer wavelets, α is typically between 100 and 3000.

The article by M. Omachi and S. Omachi “Fast calculation of continuous wavelet transform using polynomial”, Proceedings of the 2007 International Conference on Wavelet Analysis and Pattern Recognition, Beijing, China, 2-4 Nov. 2007 describes a fast CWT method for a signal, in which the number of operations required does not depend on α. In this method, the mother wavelet is defined by a polynomial of order d on a compact support: typically, order d and the coefficients of the polynomial are chosen in such a way as to approximate, with the desired accuracy, a non-polynomial “reference” wavelet, such as a Haar wavelet. The wavelet coefficients are calculated in a recursive manner; hence W_(s)(τ) is calculated from W_(s−1)(τ), the scale factor being considered an integer. The computational cost of calculating coefficient W_(s)(τ) is O(ds).

This method has a certain number of disadvantages.

Firstly, the polynomial approximation of a “reference wavelet”, such as the Haar wavelet, may necessitate recourse to a high order d, which increases the computational cost of the method accordingly.

Secondly, it does not allow coefficients W_(s) to be determined for different values of s—and therefore for different frequencies—independently of each other. On the contrary, the recursive character of the algorithm means that the determination of Ws necessarily involves determining W₁ . . . W_(s−1). The method of M. Omachi and S. Omachi is therefore not optimized for the applications in which a signal has to be analyzed only in certain spectral bands.

SUMMARY

The invention aims to obtain a method enabling fast determination of at least one wavelet coefficient W_(s)(τ) of a wavelet transform of a signal without displaying the aforementioned disadvantages of the prior art.

One object of the invention enabling this aim to be achieved is a method for determining at least one wavelet coefficient W_(s)(τ) of a wavelet transform of a signal, said wavelet transform being defined in relation to a mother wavelet, wherein:

-   -   said mother wavelet is a continuous function, having a support         subdivided into J≧1 intervals bound by (J+1) extremity points,         said function being defined by a polynomial of maximum level N≧1         on each said interval;     -   and wherein said method includes the steps consisting in:         -   a) calculating all or some of the primitives of said signal             of order k comprised between 2 and N+1, at least at (J+1)             points corresponding to said extremity points of the             intervals of the wavelet support dilated by a factor of and             translated by a time τ;         -   b) calculating the convolution of said or each said             primitive sampled in this way with a respective succession             of (J+1) coefficients C_(i) ^(k)(s), dependent on said             wavelet; and         -   c) determining said wavelet coefficient by calculating a             linear combination of said convolutions;

said steps a) to c) being implemented by a processor configured or programmed in an appropriate manner.

Contrary to the case of the algorithm of M. Omachi and S. Omachi, the mother wavelet in the method of the invention is not polynomial, but piecewise polynomial. The maximum order N can therefore be kept small (typically N=2 or N=3) while making it possible effectively to approximate any reference mother wavelet on a compact support. The computational cost depends at the same time on N (maximum polynomial order defining the mother wavelet), on J (number of intervals or pieces) and on the regularity of wavelet ψ, piecewise polynomial; one therefore has a plurality of parameters at one's disposal enabling the method to be optimized. Furthermore, the different coefficients W_(s)(τ) can be determined independently of each other.

According to different embodiments of the method of the invention:

-   -   Said coefficients C_(i) ^(k)(s) can be dependent upon the         discontinuities of the derivatives of orders between 1 and N of         the wavelet, corresponding to said extremity points of the         intervals constituting its support.     -   Stages b) and c) can be implemented by applying the following         equation:

${W_{s}(\tau)} = {\overset{N + 1}{\sum\limits_{k = 2}}{\overset{J}{\sum\limits_{i = 0}}{\left( {- 1} \right)^{k - 1}{C_{i}^{k}(s)}{X^{(k)}\left( {\tau + \frac{\alpha_{i}}{s}} \right)}}}}$ where:

-   -   W_(s)(τ) is the desired wavelet coefficient, corresponding to a         time delay τ and to a dilatation s of a mother wavelet ψ(t);     -   X^((k))(t) is the order k primitive of the signal;     -   α_(i) are the extremity points of the intervals constituting the         support of the mother wavelet, taken in order; and     -   C_(i) ^(k)(s), with i between 0 and J, are the coefficients         forming the succession with which the order k primitive of the         signal is convoluted.

In particular, the coefficients C_(i) ^(k)(s) can be given by:

${{C_{i}^{k}(s)} = {{\left( \psi_{i - 1}^{S} \right)^{({k - 1})}\left( \frac{\alpha_{i}}{s} \right)} - {\left( \psi_{i}^{s} \right)^{({k - 1})}\left( \frac{\alpha_{i}}{s} \right)}}},{i = 1},\ldots\mspace{20mu},{J - 1}$ ${C_{0}^{k}(s)} = {{- \left( \psi_{0}^{S} \right)^{({k - 1})}}\left( \frac{2{\alpha 0}_{0}}{s} \right)}$ ${C_{J}^{k}(s)} = {\left( \psi_{J}^{S} \right)^{({k - 1})}\left( \frac{\alpha_{J}}{s} \right)}$ where (ψ_(i) ^(s))^((k−1)) is the derivative of order (k−1) of the function

${\psi_{i}^{s} = {{\psi_{i}^{s}(t)} = {\frac{1}{\sqrt{s}}{\psi_{i}\left( \frac{t}{s} \right)}}}},$ ψ_(i) being the polynomial that defines the mother wavelet at the i^(th) interval of its support.

-   -   Said step a) can include:

a1) calculation of said primitives of order k comprised between 2 and N+1 of said signal; and

a2) their sampling at (J+1) sampling points corresponding to said extremity points of the intervals on the wavelet support dilated by a factor of s and translated by a time τ.

-   -   In a case particularly simple to implement, said wavelet can be         a continuous function and can have a first continuous         derivative, piecewise polynomial of order of two; in this case,         said step a) consists in calculating only the order primitive of         order 3 of said signal and steps b) and c) can be implemented by         applying the following equation:

${W(\tau)} = {\overset{J}{\sum\limits_{i = 0}}{B_{i}{X^{(3)}\left( {\tau + \frac{\alpha_{i}}{s}} \right)}}}$ where: ${B_{i} = {2\;\frac{1}{\sqrt{s}}\frac{1}{s^{2}}\left( {p_{i - 1} - p_{i}} \right)}},{i = 1},\ldots\mspace{14mu},{{J - 1};}$ ${B_{0} = {{- 2}\;\frac{1}{\sqrt{s}}\frac{1}{s^{2}}p_{0}}};$ $B_{J} = \;{\frac{1}{\sqrt{s}}\frac{1}{s^{2}}2{p_{J}.}}$

-   -   Said step a) can be implemented in real time, said primitives         then being calculated as cumulative sums during an acquisition         step of said signal, then saved to a first memory of said         processor. Furthermore, said successions of coefficients C_(i)         ^(k)(s) can be saved to a second memory of said processor prior         to said acquisition step of said signal.

Another object of the invention is a method for wavelet transform of a signal in discrete or discretized time, comprising the determination of a plurality of wavelet coefficients associated with different dilatations/translations of a single mother wavelet, wherein each said wavelet coefficient is determined by a method as described above.

Yet another object of the invention is a method for wavelet transform of a signal, comprising the determination of a plurality of wavelet coefficients associated with different dilatations/translations of a single mother wavelet, wherein each wavelet coefficient W_(s)(τ), corresponding to a time delay τ and to a dilatation s of a mother wavelet ψ(t), is determined by a method as described above, in which:

-   -   said step a) is implemented in real time, said primitives being         calculated as cumulative sums during an acquisition step of said         signal, then saved to a first memory of said processor;     -   said steps b) and c) are implemented in real time using         successions of coefficients saved beforehand to a second memory         of said processor;

the wavelet coefficients W_(s)(τ), corresponding to a time delay τ and to a dilatation s of a mother wavelet ψ(t), being determined from the time t=τ+α/s, where α is half the width of the support of said mother wavelet.

Said signal can be a digital signal, obtained if necessary by sampling and quantifying an analog signal. In particular, the signal can be a signal acquired by a detector such as an electrode, a photosensitive cell, an acoustic detector, or in a general manner, any detector or sensor delivering an electrical signal under the effect of a physical, chemical or biological parameter. Even more particularly, it can be a signal representative of a neuronal activity of a brain, especially a human brain (neurological or neuro-electrical signal).

Yet another object of the invention is a processor configured or programmed to implement a method according to one of the preceding claims. By processor, one means any machine for processing information; typically, this could be an electronic processor, preferably digital. In particular, it could be a conventional computer programmed in an appropriate manner, a processor dedicated to processing digital signals (a digital signal processor or DSP), a wired digital circuit, a programmed/wired hybrid system etc.

BRIEF DESCRIPTION OF THE DRAWINGS

Other characteristics, details and advantages of the invention will emerge from reading the description given with reference to the attached drawings given as examples and in which, respectively:

FIG. 1 illustrates a block diagram of a method according to an embodiment of the invention; and

FIG. 2 illustrates a functional diagram of a processor for implementing a real time method according to an embodiment of the invention.

DETAILED DESCRIPTION

The method according to the invention will first be illustrated in the simple case of a mother wavelet, quadratic piecewise (N=2), defined on the interval [−α, α], and for s=1. In this case, we can write:

$\begin{matrix} {{W(\tau)} = {\int_{- \alpha}^{\alpha}{{x\left( {t + \tau} \right)}{\psi(t)}\ {\mathbb{d}t}}}} & (3) \end{matrix}$ Let −α=α₀<α₁< . . . <α_(J)=α be the partition of the support [−α, α]; the mother wavelet ψ(t), which is continuous, is then defined by:

$\begin{matrix} {{\psi(t)} = \left\{ \begin{matrix} {{p_{j}t^{2}} + {q_{j}t} + r_{j}} & {\forall{t \in \left\lbrack {\alpha_{j},\alpha_{j + 1}} \right\rbrack}} \\ {{\psi(t)} = 0} & {\forall{{t} \geq \alpha}} \end{matrix} \right.} & (4) \end{matrix}$ By integrating (3) by parts, one obtains:

$\begin{matrix} \begin{matrix} {{W(\tau)} = {\int_{- \alpha}^{\alpha}{{x\left( {t + \tau} \right)}{\psi(t)}\ {\mathbb{d}t}}}} \\ {= {{\sum\limits_{j = 0}^{J - 1}{\int_{\alpha_{j}}^{\alpha_{j + 1}}{{x\left( {t + \tau} \right)}{\psi(t)}\ {\mathbb{d}t}}}} =}} \\ {= {\sum\limits_{j = 0}^{J - 1}{\left( {{{X^{(1)}\left( {t + \tau} \right)}{\psi(t)}}|_{\alpha_{j}}^{\alpha_{j + 1}}{- {\int_{\alpha_{j}}^{\alpha_{j + 1}}{{X^{(1)}\left( {t + \tau} \right)}{\psi^{\prime}(t)}\ {\mathbb{d}t}}}}} \right).}}} \end{matrix} & (5) \end{matrix}$ where X⁽¹⁾(t) is an order 1 primitive of function x(t), namely a function whose first derivative relative to t is x(t). For a continuous mother wavelet ψ(t), and considering that: ψ(−α)=ψ(α₀)=ψ(α_(J))=ψ(α)=0, we have:

$\begin{matrix} {{{\sum\limits_{j = 0}^{J - 1}{{X^{(1)}\left( {t + \tau} \right)}{\psi(t)}}}|_{\alpha_{j}}^{\alpha_{j + 1}}} = {{\sum\limits_{j = 0}^{J - 1}\begin{pmatrix} {{{X^{(1)}\left( {\alpha_{j + 1} + \tau} \right)}{\psi\left( \alpha_{j + 1} \right)}} -} \\ {{X^{(1)}\left( {\alpha_{j} + \tau} \right)}{\psi\left( \alpha_{j} \right)}} \end{pmatrix}} =}} \\ {= {{\sum\limits_{j = 1}^{J}\left( {{X^{(1)}\left( {\alpha_{j} + \tau} \right)}{\psi\left( \alpha_{j} \right)}} \right)} -}} \\ {{\sum\limits_{j = 0}^{J - 1}\left( {{X^{(1)}\left( {\alpha_{j} + \tau} \right)}{\psi\left( \alpha_{j} \right)}} \right)} =} \\ {= {{{X^{(1)}\left( {\alpha_{J} + \tau} \right)}{\psi\left( \alpha_{J} \right)}} - {{X^{(1)}\left( {\alpha_{0} + \tau} \right)}{\psi\left( \alpha_{0} \right)}}}} \\ {= 0} \end{matrix}$ Hence:

$\begin{matrix} \begin{matrix} {{W(\tau)} = {\int_{- \alpha}^{\alpha}{{x\left( {t + \tau} \right)}{\psi(t)}\ {\mathbb{d}t}}}} \\ {= {\sum\limits_{j = 0}^{J - 1}\left( {- {\int_{\alpha_{j}}^{\alpha_{j + 1}}{{X^{(1)}\left( {t + \tau} \right)}{\psi^{\prime}(t)}\ {\mathbb{d}t}}}} \right)}} \\ {= {- {\int_{- \alpha}^{\alpha}{{X^{(1)}\left( {t + \tau} \right)}{\psi^{\prime}(t)}\ {\mathbb{d}t}}}}} \end{matrix} & (6) \end{matrix}$ By integrating (6) by parts and assuming, furthermore, that the linear piecewise function ψ′(t)=2p_(j)t+q_(j)tε[α_(j), α_(j+i)] is continuous, we find:

$\begin{matrix} {{W(\tau)} = {{\int_{- \alpha}^{\alpha}{{x\left( {t + \tau} \right)}{\psi(t)}\ {\mathbb{d}t}}} = {\int_{- \alpha}^{\alpha}{{X^{(2)}\left( {t + \tau} \right)}{\psi^{''}(t)}\ {\mathbb{d}t}}}}} & (7) \end{matrix}$ where X⁽²⁾(t) is an order 2 primitive of the function x(t), namely a function whose second derivative relative to t is x(t).

To obtain (7), we utilized the fact that ψ′(τ)=0∀|t|≧α.

The second derivative of ψ(t) is a constant piecewise function:

ψ″(t)=2p_(j) ∀tε└α_(j), α_(j+1)┘, which allows us to write:

$\begin{matrix} {{W(\tau)} = {\sum\limits_{j = 0}^{J - 1}{\int_{\alpha_{j}}^{\alpha_{j + 1}}{{X^{(2)}\left( {t + \tau} \right)}{\psi^{''}(t)}\ {\mathbb{d}t}}}}} \\ {= {\sum\limits_{j = 0}^{J - 1}{2p_{j}{\int_{\alpha_{j}}^{\alpha_{j + 1}}{{X^{(2)}\left( {t + \tau} \right)}\ {\mathbb{d}t}}}}}} \\ {= {{\sum\limits_{j = 0}^{J - 1}{2p_{j}{\int_{\alpha_{j}}^{\alpha_{j + 1}}{{X^{(2)}\left( {t + \tau} \right)}\ {\mathbb{d}t}}}}} =}} \\ {= {\sum\limits_{j = 0}^{J - 1}{2{p_{j}\left( {{X^{(3)}\left( {\tau + \alpha_{j + 1}} \right)} - {X^{(3)}\left( {\tau + \alpha_{j}} \right)}} \right)}}}} \\ {= {{{\sum\limits_{j = 1}^{J}{2p_{j - 1}{X^{(3)}\left( {\tau + \alpha_{j}} \right)}}} - {\overset{J - 1}{\sum\limits_{j = 0}}{2p_{j}{X^{(3)}\left( {\tau + \alpha_{j}} \right)}}}} =}} \\ {= {{2p_{J - 1}{X^{(3)}\left( {\tau + \alpha_{J}} \right)}} - {2p_{0}{X^{(3)}\left( {\tau + \alpha_{0}} \right)}} +}} \\ {\sum\limits_{j = 1}^{J - 1}{2\left( {p_{j - 1} - p_{j}} \right){{X^{(3)}\left( {\tau + \alpha_{j}} \right)}.}}} \end{matrix}$ where X⁽³⁾(t) is an order 3 primitive of function x(t), namely a function whose third derivative relative to t is x(t).

We therefore obtain:

$\begin{matrix} {{{W(\tau)} = {\sum\limits_{i = 0}^{J}{B_{i}{X^{(3)}\left( {\tau + \alpha_{i}} \right)}}}}{{with}\text{:}}{{B_{i} = {2\left( {p_{i - 1} - p_{i}} \right)}},{i = 1},\ldots\mspace{14mu},{{J - 1};}}{{B_{0} = {{- 2}p_{0}}};}{B_{J} = {2{p_{J}.}}}} & (8) \end{matrix}$

Assuming that the order 3 primitive of x(t) is known, J+1 multiplications and as many sums are required to determine a wavelet coefficient, instead of the (2α−1) multiplications and (2α−2) sums needed for the direct application of equation (2).

If the first derivative of the mother wavelet ψ(t) is not continuous, then the sum

${\sum\limits_{j = 0}^{J - 1}{{X^{(2)}\left( {t + \tau} \right)}{\psi^{\prime}(t)}}}|_{\alpha_{j}}^{\alpha_{j + 1}}$ is no longer equal to zero.

An elementary calculation allows us to show that:

$\begin{matrix} {{{\sum\limits_{j = 0}^{J - 1}{{X^{(2)}\left( {t + \tau} \right)}{\psi^{\prime}(t)}}}|_{\alpha_{j}}^{\alpha_{j + 1}}} = {{{\sum\limits_{j = 0}^{J - 1}\left( {{X^{(2)}\left( {t + \tau} \right)}\left( {{2p_{j}t} + q_{j}} \right)} \right)}|_{\alpha_{j}}^{\alpha_{j + 1}}} =}} \\ {= {\sum\limits_{j = 1}^{J - 1}\left( {{\begin{pmatrix} {{2{\alpha_{j}\left( {p_{j - 1} - p_{j}} \right)}} +} \\ {q_{j - 1} - q_{j}} \end{pmatrix}{X^{(2)}\left( {a_{j} + \tau} \right)}} + -} \right.}} \\ {{\left( {{2p_{0}\alpha_{0}} + q_{0}} \right){X^{(2)}\left( {\alpha_{0} + \tau} \right)}} +} \\ {\left( {{2p_{J - 1}\alpha_{J}} + q_{J - 1}} \right){{X^{(2)}\left( {\alpha_{J} + \tau} \right)}.}} \end{matrix}$

The coefficient of wavelet W(τ) is therefore given by:

$\begin{matrix} {{{W(\tau)} = {{\sum\limits_{i = 0}^{J}{B_{i}{X^{(3)}\left( {\tau + \alpha_{i}} \right)}}} + {\left( {- 1} \right){\sum\limits_{i = 0}^{J}{C_{i}{X^{(2)}\left( {\alpha_{i} + \tau} \right)}}}}}}{{with}\text{:}}{{B_{i} = {2\left( {p_{i - 1} - p_{i}} \right)}},{i = 1},\ldots\mspace{14mu},{{J - 1};}}{{B_{0} = {{- 2}p_{0}}};}{{B_{J} = {2p_{J}}};}{{C_{i} = {{2{\alpha_{i}\left( {p_{i - 1} - p_{j}} \right)}} + q_{i - 1} - q_{i}}},{i = 1},\ldots\mspace{14mu},{{J - 1};}}{{C_{0} = {- \left( {{2p_{0}\alpha_{0}} + q_{0}} \right)}};}{C_{J} = {{2p_{J - 1}\alpha_{J}} + {q_{J - 1}.}}}} & (9) \end{matrix}$

In this case, the determination of a wavelet coefficient requires 2(J+1) sums and multiplications.

Equation (9) can be generalized to the case of any order of polynomial N. In this case, the mother wavelet ψ(t) can be expressed by:

${\psi(t)} = \left\{ {{{\begin{matrix} {{\psi_{j}(t)},} & {t \in \left\lbrack {\alpha_{j},\alpha_{j + 1}} \right\rbrack} \\ {0,} & {{t} \geq a} \end{matrix}{with}\mspace{14mu}{\psi_{j}(t)}} = {{p_{j}^{N}t^{N}} + {p_{j}^{N - 1}t^{N - 1}} + {\ldots\mspace{14mu} p_{j}^{0}}}},} \right.$ ψ(t) furthermore being a continuous function and such that ψ(−α)=ψ(α₀)=ψ(α_(J))=ψ(α)=0.

By integrating (3) by parts (N+1) times, we obtain:

$\begin{matrix} {{{W(\tau)} = {\overset{N + 1}{\sum\limits_{k = 2}}{\sum\limits_{i = 0}^{J}{\left( {- 1} \right)^{k - 1}C_{i}^{k}{X^{(k)}\left( {\tau + \alpha_{i}} \right)}}}}}{{with}\text{:}}{{C_{i}^{k} = {{\psi_{i - 1}^{({k - 1})}\left( \alpha_{i} \right)} - {\psi_{i}^{({k - 1})}\left( \alpha_{i} \right)}}},{i = 1},\ldots\mspace{14mu},{J - 1},{C_{0}^{k} = {- {\psi_{0}^{({k - 1})}\left( \alpha_{0} \right)}}}}{C_{J}^{k} = {\psi_{J}^{({k - 1})}\left( \alpha_{J} \right)}}} & (10) \end{matrix}$

Equation (10) shows that in general, the number of operations needed to determine a wavelet coefficient is proportional to the order N of the polynomials. However, this is not true if ψ(t) is chosen such that its derivatives are continuous, since several of the coefficients C_(i) ^(k) cancel each other out in this case. In the case of a piecewise polynomial function of order N, continuous and all of whose derivatives up to the order (N−1) are continuous, equation (10) is simplified as follows:

$\begin{matrix} {{{W(\tau)} = {\left( {- 1} \right)^{N}{\sum\limits_{i = 0}^{J}{C_{i}^{({N + 1})}{X^{({N + 1})}\left( {\tau + \alpha_{i}} \right)}}}}}{{C_{i}^{({N + 1})} = {{N!}\left( {p_{i - 1}^{N} - p_{i}^{N}} \right)}},{i = 1},\ldots\mspace{14mu},{J - 1}}{C_{0}^{({N + 1})} = {{- {N!}}p_{0}^{N}}}{C_{J}^{({N + 1})} = {{N!}p_{J}^{N}}}} & (11) \end{matrix}$

In this case, the computational cost does not depend on order N, and only the primitive of order (N+1) must be calculated. Consequently, in order to minimize the computational cost, it is necessary to use low-order polynomials and/or mother wavelets having continuous derivatives.

Until now, we have limited ourselves to the case of a constant scale factor s, conventionally taken to be 1. It is possible from now on to relax this assumption and to consider a wavelet

${{\psi_{s}(t)} = {\frac{1}{\sqrt{s}}{\psi_{1}\left( \frac{t}{s} \right)}}},$ which is continuous, defined on the interval

$\left\lbrack {{- \frac{\alpha}{s}},\frac{\alpha}{s}} \right\rbrack$ with the partition

${{- \frac{\alpha}{s}} = {{\frac{\alpha_{0}}{s} < \frac{\alpha_{1}}{s} < \ldots < \frac{\alpha_{J}}{s}} = \frac{\alpha}{s}}},$ piecewise polynomial, and whose expression is

${\psi_{s}(t)} = \left\{ {\begin{matrix} {{\psi_{j}^{s}(t)},} & {t \in \left\lbrack {\frac{\alpha_{j}}{s},\frac{\alpha_{j + 1}}{s}} \right\rbrack} \\ {0,} & {{t} \geq \frac{\alpha}{s}} \end{matrix},{{with}\begin{matrix} {{\psi_{j}^{S}(t)} = {{\left( p_{j}^{N} \right)_{S}t^{N}} + {\left( p_{j}^{N - 1} \right)_{S}t^{N - 1}} + \ldots + {\left( p_{j}^{0\;} \right)_{S}\mspace{14mu}{and}\mspace{14mu}\left( p_{j}^{i} \right)_{S}}}} \\ {= {\frac{1}{\sqrt{s}}\frac{1}{s^{i}}{\left( p_{j}^{i} \right)_{1}.}}} \end{matrix}}} \right.$

In this general case, the wavelet coefficient W_(s)(τ) can be determined by applying the equation:

$\begin{matrix} {{{W_{s}(\tau)} = {\sum\limits_{k = 2}^{N + 1}{\sum\limits_{i = 0}^{J}{\left( {- 1} \right)^{k - 1}{C_{i}^{k}(s)}{X^{(k)}\left( {\tau + \frac{\alpha_{i}}{s}} \right)}}}}}{{with}\text{:}}{{{C_{i}^{k}(s)} = {{\left( \psi_{i - 1}^{S} \right)^{({k - 1})}\left( \frac{\alpha_{i}}{s} \right)} - {\left( \psi_{i}^{s} \right)^{({k - 1})}\left( \frac{\alpha_{i}}{s} \right)}}},{i = 1},\ldots\mspace{14mu},{J - 1},{{{C_{0}^{k}(s)} = {{- \left( \psi_{0}^{S} \right)^{({k - 1})}}\left( \frac{\alpha_{0}}{s} \right)}};}}{{C_{J}^{k}(s)} = {\left( \psi_{J}^{S} \right)^{({k - 1})}{\left( \frac{\alpha_{J}}{s} \right).}}}} & (12) \end{matrix}$

It should be noted that the coefficients C_(i) ^(k) depend solely on the mother wavelet ψ(t), and can therefore be calculated once and for all, even before the acquisition of signal x(t). The calculation of these coefficients does not therefore add to the processing time, and its computational cost is negligible.

In the particular case of a mother wavelet made up of order two polynomials, ψ₁(τ)=p_(j)t²+q_(j)t+r_(j) and, presenting a first continuous derivative, we obtain:

$\begin{matrix} {{{W(\tau)} = {\sum\limits_{i = 0}^{J}{B_{i}{X^{(3)}\left( {\tau + \frac{\alpha_{i}}{s}} \right)}}}}{{with}\text{:}}{{B_{i} = {2\frac{1}{\sqrt{s}}\frac{1}{s^{2}}\left( {p_{i - 1} - p_{i}} \right)}},{i = 1},\ldots\mspace{14mu},{{J - 1};}}{{B_{0} = {{- 2}\frac{1}{\sqrt{s}}\frac{1}{s^{2}}p_{0}}};}{B_{J} = {\frac{1}{\sqrt{s}}\frac{1}{s^{2}}2{p_{J}.}}}} & (13) \end{matrix}$

Different approaches may be made for calculating primitives X⁽¹⁾, . . . , X^((k)), . . . X^((N+1)).

In general, the signal x(t) is in reality a discrete signal, or a continuous signal sampled at discrete instants: x(t)→x(i)=x_(i), i= . . . -1, 0, 1, 2, . . . . In order to calculate the primitives, it is possible in particular to use the approximation of the piecewise constant signal as a basis: x(t)=x_(i), tε[i,i+1].

One notes that i is the value rounded to a lower integer of time t (with an appropriate timescale) t:i=└t┘. One can therefore write t=i+Δ, Δ=t−i≦1.

Hence:

X⁽¹⁾(i + Δ) = X⁽¹⁾(i) + ∫_(i)^(i + Δ)x_(i) 𝕕t = X⁽¹⁾(i) + x_(i)Δ; $\begin{matrix} {{X^{(2)}\left( {i + \Delta} \right)} = {{X^{(2)}(i)} + {\int_{i}^{i + \Delta}{{X^{(1)}\left( {i + \Delta} \right)}{\mathbb{d}t}}}}} \\ {{= {{X^{(2)}(i)} + {{X^{(1)}(i)}\Delta} + {x_{i}\frac{\Delta^{2}}{2}}}};} \end{matrix}$ ${X^{(3)}\left( {i + \Delta} \right)} = {{X^{(3)}(i)} + {{X^{(2)}(i)}\Delta} + {{X^{(1)}(i)}\frac{\Delta^{2}}{2}} + {x_{i}\frac{\Delta^{3}}{6}}}$ and so on.

One will note that the primitives are defined to a nearest integration constant. In the above equations, we implicitly accepted X⁽³⁾(0)=0 X⁽²⁾(0)=0 X⁽¹⁾(0)=0, which allows said integration constants to be fixed.

If we are only interested in integer values of time t, we can put forward Δ=1, which gives:

$\begin{matrix} {{{{X^{(1)}\left( {i + 1} \right)} = {{X^{(1)}(i)} + x_{i}}};}{{{X^{(2)}\left( {i + 1} \right)} = {{X^{(2)}(i)} + {X^{(1)}(i)} + \frac{x_{i}}{2}}};}{{X^{(3)}\left( {i + 1} \right)} = {{X^{(3)}(i)} + {X^{(2)}(i)} + \frac{X^{(1)}(i)}{2} + \frac{x_{i}}{6}}}} & (14) \end{matrix}$ and so on.

It is easy to understand that equations (14) make it possible to calculate the primitives by cumulative sums “during the process”, in other words, during the time the samples of the signal x(t) are being acquired. This means that the calculation of the primitives does not increase the processing time, which is very advantageous in real time applications. Equations (14) were obtained on the basis of the approximation of the piecewise constant signal; similar equations can be obtained using a different interpolation, for example, a linear interpolation.

It should be noted that equations (14) give the values of the primitives of x(i) for all times i. However, the determination of the wavelet coefficients W_(s)(τ) only requires their values at times

$\tau + \frac{\alpha_{i}}{s}$ (see equation 12). In other words, the primitives calculated by means of equations (14) must be sampled at (J+1) sampling points corresponding to said extremity points of the intervals on the support of the wavelet ψ_(s)(t−τ) obtained by dilating the mother wavelet ψ(t) by a factor of s and by translating it by a time τ. Only these samples are used to determine W_(s)(τ).

The different steps of the method we have just described are illustrated by FIG. 1. From left to right, one can see that, while the signal x(t) is being acquired—and when applicable, sampled, quantified and converted to digital format—block UCP calculates its primitives X⁽²⁾(t), X⁽³⁾(t) . . . X^((k))(t) . . . X^((N+1))(t) “during the process”, for all of the values (that can be assumed to be discrete) of t. The blocks E₂ . . . E_(k) . . . E_(N+1) then sample these primitives at times

$\tau + {\frac{\alpha_{i}}{s}.}$ The primitives, sampled in this way, are convoluted in blocks UCC₂ . . . UCC_(k) . . . UCC_(N+1) with the successions formed by the coefficients C²(s), C_(i) ³(s) . . . C_(i) ^(k)(s) . . . C_(i) ^(N+1)(s) extracted from a memory MC—which corresponds, in equation (12), to the sum in relation to index J. The results of these convolutions are then linearly combined in an adder block UCL with a sign (−1)^(k−1), in other words alternating between + or −, which corresponds, in equation 12, to the sum in relation to index k.

It should be noted that blocks UCP, E_(k), UCC_(k) et UCL are functional blocks, which do not necessarily correspond to physical structures of a processor used to implement the method.

FIG. 2 illustrates the application of such a method to the wavelet transform in real time of a signal x(t), namely to the determination of the coefficients W_(s)(τ) for a plurality of values of s=s₁, s₂ . . . and τ=τ₁, τ₂ . . . .

The block UCP calculates the primitives X^((k))(t) during the process as cumulative sums of the samples of the signal x(t). The primitives calculated in this way are saved to the memory MP, which is preferably a mobile memory. At the same time, the previously calculated values of the primitives corresponding to the times

$\tau + \frac{\alpha_{i}}{s}$ are read from said memory MP and addressed to a calculation unit UCCL. The coefficients C_(i) ^(k)(s) are also read from a second memory MC and addressed in turn to the unit UCCL. The latter determines the wavelet coefficients W_(s)(τ) as soon as this is possible. In fact, equation (12) shows that, in order to determine W_(S)(τ), it is necessary to know the primitives X^((k)) only in the interval

$\left\lbrack {\tau \pm \frac{\alpha}{s}} \right\rbrack.$ Consequently, at each instant t, it is possible to determine

${W_{S}(\tau)}{\forall{\tau \leq {t - {\frac{\alpha}{s}.}}}}$ The wavelet transform can therefore be performed in real time, with a time delay equal to α+T_(P) relative to the signal, T_(p) being a delay due to the processing time.

Once again, the blocks UCP, MP, MC, UCCL must be considered as functional blocks, which do not necessarily correspond to physical structures of a processor used to implement the method. 

The invention claimed is:
 1. A method for determining at least one wavelet coefficient W_(s)(τ) of a wavelet transform of a signal obtained by sampling and quantifying an analog signal representative of a physical quantity, said wavelet transform being defined in relation to a mother wavelet, wherein: said mother wavelet is a continuous function, having a support subdivided into J≧1 intervals bound by (J+1) extremity points, said function being defined by a polynomial of a maximum level N≧1 on each said interval; and wherein said method includes the steps consisting in: a) calculating all or some of the primitives of said signal of order k comprised between 2 and N+1, at least at (J+1) points corresponding to said extremity points of the intervals of the wavelet support dilated by a factor of s and translated by a time τ; b) calculating the convolution of said or each said primitive sampled in this way with a respective succession of (J+1) coefficients C_(i) ^(k)(s), dependent upon said wavelet; and c) determining said wavelet coefficient by calculating a linear combination of said convolutions; said steps a) to c) being implemented by a processor configured or programmed in an appropriate manner in a neuronal control or brain-computer interface system.
 2. The method as claimed in claim 1, in which said coefficients C_(i) ^(k)(s) are dependent upon the discontinuities of the derivatives of orders between 1 and N of the wavelet corresponding to said extremity points of the intervals constituting its support.
 3. The method as claimed in claim 2, in which steps b) and c) are implemented by applying the following equation: ${W_{s}(\tau)} = {\overset{N + 1}{\sum\limits_{k = 2}}{\sum\limits_{i = 0}^{J}{\left( {- 1} \right)^{k - 1}{C_{i}^{k}(s)}{X^{(k)}\left( {\tau + \frac{\alpha_{i}}{s}} \right)}}}}$ where: W_(s)(τ) is the desired wavelet coefficient, corresponding to a time delay τ and to a dilatation s of a mother wavelet ψ(t); X^((k))(t) is the order k primitive of the signal; α_(i) are the extremity points of the intervals constituting the support of the mother wavelet, taken in order; and C_(i) ^(k)(s), with i between 0 and J, are the coefficients forming the succession with which the order k primitive of the signal is convoluted.
 4. The method as claimed in claim 3 in which the coefficients C_(i) ^(k)(s) are given by: ${{C_{i}^{k}(s)} = {{\left( \psi_{i - 1}^{S} \right)^{({k - 1})}\left( \frac{\alpha_{i}}{s} \right)} - {\left( \psi_{i}^{s} \right)^{({k - 1})}\left( \frac{\alpha_{i}}{s} \right)}}},{i = 1},\ldots\mspace{14mu},{J - 1}$ ${C_{0}^{k}(s)} = {{- \left( \psi_{0}^{S} \right)^{({k - 1})}}\left( \frac{\alpha_{0}}{s} \right)}$ ${C_{J}^{k}(s)} = {\left( \psi_{J}^{S} \right)^{({k - 1})}\left( \frac{\alpha_{J}}{s} \right)}$ where (ψ_(i) ^(s))^((k-1)) is the derivative of order (k−1) of the function ${\psi_{i}^{s} = {{\psi_{i}^{s}(t)} = {\frac{1}{\sqrt{s}}{\psi_{i}\left( \frac{t}{s} \right)}}}},$ ψ_(i) being the polynomial that defines the mother wavelet on the i^(th) interval of its support.
 5. The method as claimed in claim 1, in which said wavelet is a continuous function and has a first continuous derivative, piecewise polynomial of order of two, in which said step a) consists in calculating only the primitive of order 3 of said signal and in which steps b) and c) are implemented by applying the following equation: ${W(\tau)} = {\sum\limits_{i = 0}^{J}{B_{i}{X^{(3)}\left( {\tau + \frac{\alpha_{i}}{s}} \right)}}}$ where: ${B_{i} = {2\frac{1}{\sqrt{s}}\frac{1}{s^{2}}\left( {p_{i - 1} - p_{i}} \right)}},{i = 1},\ldots\mspace{14mu},{{J - 1};}$ ${B_{0} = {{- 2}\frac{1}{\sqrt{s}}\frac{1}{s^{2}}p_{0}}};$ $B_{J} = {\frac{1}{\sqrt{s}}\frac{1}{s^{2}}2{p_{J}.}}$
 6. The method as claimed in claim 1, in which said step a) includes: a1) calculation of said order k primitives between 2 and N+1 of said signal; and a2) their sampling at (J+1) sampling points corresponding to said extremity points of the intervals on the wavelet support dilated by a factor of s and translated by a time τ.
 7. The method as claimed in claim 1, in which said step a) is implemented in real time, said primitives being calculated as cumulative sums during an acquisition step of said signal, then saved to a first memory (MP) of said processor.
 8. The method as claimed in claim 7, in which said successions of coefficients C_(i) ^(k)(s) are saved to a second memory (MC) of said processor prior to said acquisition step of said signal.
 9. A method for wavelet transform of a signal in discrete or discretized time, comprising the determination of a plurality of wavelet coefficients associated with different dilatations/translations of a single mother wavelet, wherein each said wavelet coefficient is determined by a method as claimed in claim
 1. 10. A method for wavelet transform of a signal comprising the determination of a plurality of wavelet coefficients associated with different dilatations/translations of a single mother wavelet, wherein each wavelet coefficient W_(s)(τ), corresponding to a time delay τ and to a dilatation s of a mother wavelet ψ(t), is determined by a method as claimed in claim 1, in which: said step a) is implemented in real time, said primitives being calculated as cumulative sums during an acquisition step of said signal, then saved to a first memory (MP) of said processor; said steps b) and c) are implemented in real time, using successions of coefficients saved beforehand to a second memory (MC) of said processor; the wavelet coefficients W_(s)(τ), corresponding to a time delay τ and to a dilatation s of a mother wavelet ψ(t), being determined from the time t=τ+α/s, where α is half the width of the support of said mother wavelet.
 11. The method as claimed in claim 1, in which said signal is a digital signal.
 12. The method as claimed in claim 1, in which the signal is a signal acquired by a detector.
 13. A processor configured or programmed to implement a method as claimed in claim
 1. 